package com.ssy.lingxi.after.sale.service;

import com.ssy.lingxi.after.sale.model.dto.OperateLogInputDto;
import com.ssy.lingxi.after.sale.model.dto.OperateLogOuterResponDto;
import com.ssy.lingxi.after.sale.model.vo.request.WorkflowPageVO;
import com.ssy.lingxi.after.sale.model.vo.response.RepairOuterWorkflowRecordVO;
import com.ssy.lingxi.after.sale.model.vo.response.ReplaceOuterWorkflowRecordVO;
import com.ssy.lingxi.after.sale.model.vo.response.ReturnOuterWorkflowRecordVO;
import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;

import java.util.List;

/**
 * 外部工作流记录接口服务
 * @author 伍将
 * @date 2020/9/3
 * @version 2.0.0
 */
public interface IOuterWorkflowRecordService {

    /**
     * 获取维修外部工作流记录
     * @author 伍将
     * @date 2020/12/11
     * @param dataId:
     * @return:
     **/
    Wrapper<List<RepairOuterWorkflowRecordVO>> getRepairRecordList(Long dataId);

    /**
     * 获取换货外部工作流记录
     * @author 伍将
     * @date 2020/12/11
     * @param dataId:
     * @return:
     **/
    Wrapper<List<ReplaceOuterWorkflowRecordVO>> getReplaceRecordList(Long dataId);

    /**
     * 获取退货外部工作流记录
     * @author 伍将
     * @date 2020/12/11
     * @param dataId:
     * @return:
     **/
    Wrapper<List<ReturnOuterWorkflowRecordVO>> getReturnRecordList(Long dataId);

    /**
     * 分页查询维修外部工作流
     * @author 伍将
     * @date 2020/12/11
     * @param user:
     * @param pageVO:
     * @return:
     **/
    Wrapper<PageData<RepairOuterWorkflowRecordVO>> pageRepairRecord(UserLoginCacheDTO user, WorkflowPageVO pageVO);

    /**
     * 分页查询换货外部工作流
     * @author 伍将
     * @date 2020/12/11
     * @param user:
     * @param pageVO:
     * @return:
     **/
    Wrapper<PageData<ReplaceOuterWorkflowRecordVO>> pageReplaceRecord(UserLoginCacheDTO user, WorkflowPageVO pageVO);

    /**
     * 分页查询退货外部工作流
     * @author 伍将
     * @date 2020/12/11
     * @param user:
     * @param pageVO:
     * @return:
     **/
    Wrapper<PageData<ReturnOuterWorkflowRecordVO>> pageReturnRecord(UserLoginCacheDTO user, WorkflowPageVO pageVO);

    /**
     * 分页查询-退货外部日志
     * @param loginUser
     * @param pageVO
     * @return
     */
    PageData<OperateLogOuterResponDto> pageReturnOuterRecordCommon(UserLoginCacheDTO loginUser, OperateLogInputDto pageVO);
    /**
     * 分页查询-换货外部日志
     * @param loginUser
     * @param pageVO
     * @return
     */
    PageData<OperateLogOuterResponDto> pageReplaceOuterRecordCommon(UserLoginCacheDTO loginUser, OperateLogInputDto pageVO);
    /**
     * 分页查询-维修外部日志
     * @param loginUser
     * @param pageVO
     * @return
     */
    PageData<OperateLogOuterResponDto> pageRepairOuterRecordCommon(UserLoginCacheDTO loginUser, OperateLogInputDto pageVO);
}
